package com.example.backed.dto;

import lombok.Data;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.util.List;

/**
 * 创建订单请求
 */
@Data
public class OrderCreateDTO {
    /**
     * 收货地址
     */
    @NotBlank(message = "收货地址不能为空")
    @Size(max = 255, message = "收货地址长度不能超过255个字符")
    private String address;

    /**
     * 收货人
     */
    @NotBlank(message = "收货人不能为空")
    @Size(max = 32, message = "收货人姓名长度不能超过32个字符")
    private String receiver;

    /**
     * 收货人电话
     */
    @NotBlank(message = "收货人电话不能为空")
    @Size(max = 16, message = "联系电话长度不能超过16个字符")
    private String phone;

    /**
     * 订单项列表
     */
    @NotEmpty(message = "订单项不能为空")
    private List<OrderItemCreateDTO> orderItems;

    @Data
    public static class OrderItemCreateDTO {
        /**
         * 商品ID
         */
        @NotNull(message = "商品ID不能为空")
        private Long productId;

        /**
         * 购买数量
         */
        @NotNull(message = "购买数量不能为空")
        private Integer quantity;
    }
} 